package Tier2.RMI_PartyManager;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;

import Shared.Party;
import Shared.Player;
import Shared.Players;

public interface PartyManager extends Remote {

    public boolean login(String name, String password) throws RemoteException;
    public void logout(String user, Player player) throws RemoteException;
    public boolean creerCompte(String name, String password) throws RemoteException;
    public Player getPlayer(String user, String name) throws RemoteException;
    
    public ArrayList<Party> getParties() throws RemoteException;
    public Players getClassement() throws RemoteException;
    public int getScores(Player player) throws RemoteException;

    public Party createParty(Player player, int nb_joueurs) throws RemoteException;
    public Party joinParty(int hashParty, Player player) throws RemoteException;
    public void quitterParty(Party party, Player p) throws RemoteException;
    
    public void callback(String user, Tier2.RMI_PartyManager.Callback callback) throws RemoteException;
}